// 认证工具模块
const AUTH_KEY = 'admin_authenticated';
const ADMIN_PASSWORD = 'root2025';

/**
 * 检查用户是否已认证
 */
export function isAuthenticated(): boolean {
  return localStorage.getItem(AUTH_KEY) === 'true';
}

/**
 * 验证密码并设置认证状态
 */
export function authenticate(password: string): boolean {
  if (password === ADMIN_PASSWORD) {
    localStorage.setItem(AUTH_KEY, 'true');
    return true;
  }
  return false;
}

/**
 * 清除认证状态（登出）
 */
export function logout(): void {
  localStorage.removeItem(AUTH_KEY);
}

/**
 * 获取认证状态变化的事件监听器
 */
export function onAuthChange(callback: (isAuth: boolean) => void): () => void {
  const handleStorageChange = (e: StorageEvent) => {
    if (e.key === AUTH_KEY) {
      callback(e.newValue === 'true');
    }
  };

  window.addEventListener('storage', handleStorageChange);
  
  // 返回清理函数
  return () => {
    window.removeEventListener('storage', handleStorageChange);
  };
}
